﻿using QuanLyChoVayCaNhan.Classes;
using QuanLyChoVayCaNhan.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace QuanLyChoVayCaNhan.Forms
{
    public partial class AddTiepNhanBoSung : Form
    {
        private HoSo dataHoSo = null;
        private TiepNhanHS dataTiepNhan = null;
        public AddTiepNhanBoSung()
        {
            InitializeComponent();
            dataHoSo = (HoSo)WindowsManager.GetInstance().TabTiepNhanHoSo.SelectedItem;
            dataTiepNhan = new TiepNhanHS();
            var temp = ModelManager.GetInstance().db.CreateSoTiepNhan().ToList().FirstOrDefault();
            if (temp == null) dataTiepNhan.So = 1;
            else dataTiepNhan.So = ((int)temp.Value) + 1;
            dataTiepNhan.NgayTiepNhan = DateTime.Now;
        }

        private void AddTiepNhanBoSung_Load(object sender, EventArgs e)
        {
            this.hoSoBindingSource.DataSource = dataHoSo;
            this.tiepNhanHSBindingSource.DataSource = dataTiepNhan;
            if (isDayDuCheckBox.Checked)
            {
                cacTLCanBSTextBox.Text = "";
                cacTLCanBSTextBox.ReadOnly = true;
            }
            else
            {
                cacTLCanBSTextBox.ReadOnly = false;
            }
        }

        private void isDayDuCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            if (isDayDuCheckBox.Checked)
            {
                cacTLCanBSTextBox.Text = "";
                cacTLCanBSTextBox.ReadOnly = true;
            }
            else
            {
                cacTLCanBSTextBox.ReadOnly = false;
            }
        }
        // huy
        private void btnDong_Click(object sender, EventArgs e)
        {

        }
        private void SaveAdded()
        {
            int so;
            if (soTextBox.Text == null || soTextBox.Text.Length == 0)
            {
                MessageBox.Show("Bạn chưa nhập số chứng từ tiếp nhận hồ sơ");
                return;
            }
            if (!int.TryParse(soTextBox.Text, out so))
            {
                MessageBox.Show("Số chứng phải là một số nguyên");
                return;
            }
            if (cacTLTrongHSTextBox.Text == null || cacTLTrongHSTextBox.Text.Length == 0)
            {
                MessageBox.Show("Bạn chưa nhập danh sách các tài liệu có trong hồ sơ");
                return;
            }
            if (!isDayDuCheckBox.Checked && (cacTLCanBSTextBox.Text == null || cacTLCanBSTextBox.Text.Length == 0))
            {
                MessageBox.Show("Bạn chưa nhập danh sách tài liệu cần bổ sung");
                return;
            }
            HoSo hs = ModelManager.GetInstance().db.HoSoes.ToList().FirstOrDefault(x => x.MaHS == dataHoSo.MaHS);
            hs.Modified = dataTiepNhan.Created = dataTiepNhan.Modified = DateTime.Now;
            dataTiepNhan.MaHS = hs.MaHS;
            hs.TiepNhanHS.Add(dataTiepNhan);
            ModelManager.GetInstance().db.SaveChanges();
        }
        // luu va dong
        private void button2_Click(object sender, EventArgs e)
        {
            SaveAdded();
            this.Close();
        }
        // luu va in
        private void button3_Click(object sender, EventArgs e)
        {
            SaveAdded();
            TiepNhanHS tiepNhan = ModelManager.GetInstance().db.TiepNhanHS.ToList().FirstOrDefault((x) => x.So == dataTiepNhan.So && x.NgayTiepNhan.Date.CompareTo(dataTiepNhan.NgayTiepNhan.Date) == 0);
            if (tiepNhan == null)
            {
                MessageBox.Show("Không tìm thấy giấy tiếp nhận để in");
                return;
            }
            PrintManager.GetInstance().InGiayTiepNhanHoSo(tiepNhan);
        }

    }
}
